package com.common.consumer.controller;

import com.common.consumer.service.ConsumerGenericService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;

/**
 * 类描述：消费者通用实现类
 *
 * @author linzf
 */
public abstract class AbstractConsumerGenericController {

    /**
     * 功能描述：抽象的service实现方法
     * @return
     */
    protected abstract ConsumerGenericService getService();

    /**
     * 功能描述：验证数据是否已经存在
     * @param entity
     * @return
     */
    @PostMapping("/isExist")
    public Map<String,Object> isExist(@RequestBody Map<String,Object> entity){
        return getService().isExist(entity);
    }

    /**
     * 功能描述：获取数据
     * @param entity
     * @return
     */
    @PostMapping("/get")
    public Map<String,Object> get(@RequestBody Map<String,Object> entity){
        return getService().get(entity);
    }

    /**
     * 功能描述：保存数据
     * @param entity
     * @return
     */
    @PostMapping("/save")
    public Map<String,Object> save(@RequestBody Map<String,Object> entity){
        return getService().save(entity);
    }

    /**
     * 功能描述：更新数据
     * @param entity
     * @return
     */
    @PostMapping("/update")
    public Map<String,Object> update(@RequestBody Map<String,Object> entity){
        return getService().update(entity);
    }

    /**
     * 功能描述：删除数据
     * @param entity
     * @return
     */
    @PostMapping("/remove")
    public Map<String,Object> remove(@RequestBody Map<String,Object> entity){
        return getService().remove(entity);
    }

    /**
     * 功能描述：获取数据字典的分页数据
     * @param entity
     * @return
     */
    @PostMapping("/list")
    public Map<String,Object> list(@RequestBody Map<String,Object> entity){
        return getService().list(entity);
    }

    /**
     * 类描述：通用的查询方法
     * @param query
     * @return
     */
    @PostMapping("/commonQueryList")
    public Map<String,Object> commonQueryList(@RequestBody Map<String,Object> query){
        return getService().commonQueryList(query);
    }

}
